﻿/*
 * 创建日期 2009-1-8
 */
package com.vandagroup.twpos.taglib;

import javax.servlet.jsp.JspException;

import org.apache.struts.util.RequestUtils;
import org.apache.struts.util.ResponseUtils;


/**
 * @author cn084703
 *
 * TODO 要更改此生成的类型注释的模板，请转至
 * 窗口 － 首选项 － Java － 代码样式 － 代码模板
 */
public class MessageTag extends org.apache.struts.taglib.bean.MessageTag {

    private String id ;
    private String arg0Bundle ;
    private String arg0Key ;
    private String arg1Bundle ;
    private String arg1Key ;
    private String arg2Bundle ;
    private String arg2Key ;
    private String arg3Bundle ;
    private String arg3Key ;
    private String arg4Bundle ;
    private String arg4Key ;

    /**
     * Process the start tag.
     *
     * @exception JspException if a JSP exception has occurred
     */
    public int doStartTag() throws JspException {

        String key = this.key;
        if (key == null) {
            // Look up the requested property value
            Object value =
                RequestUtils.lookup(pageContext, name, property, scope);
            if (value != null && !(value instanceof String)) {
                JspException e = new JspException
                    (messages.getMessage("message.property", key));
                RequestUtils.saveException(pageContext, e);
                throw e;
            }
            key = (String)value;
        }

		// Construct the optional arguments array we will be using
		Object args[] = new Object[5];
		if (arg0 != null) {
		    args[0] = arg0;
		} else if (arg0Key != null) {
		    args[0] = RequestUtils.message(
			        pageContext, arg0Bundle, this.localeKey, arg0Key, new Object[5]);
		}
		if (arg1 != null) {
		    args[1] = arg1;
		} else if (arg1Key != null) {
		    args[1] = RequestUtils.message(
			        pageContext, arg1Bundle, this.localeKey, arg1Key, new Object[5]);
		}
		if (arg2 != null) {
		    args[2] = arg2;
		} else if (arg2Key != null) {
		    args[2] = RequestUtils.message(
			        pageContext, arg2Bundle, this.localeKey, arg2Key, new Object[5]);
		}
		if (arg3 != null) {
		    args[3] = arg3;
		} else if (arg3Key != null) {
		    args[3] = RequestUtils.message(
			        pageContext, arg3Bundle, this.localeKey, arg3Key, new Object[5]);
		}
		if (arg4 != null) {
		    args[4] = arg4;
		} else if (arg4Key != null) {
		    args[4] = RequestUtils.message(
			        pageContext, arg4Bundle, this.localeKey, arg4Key, new Object[5]);
		}
		/*
		args[0] = arg0;
		args[1] = arg1;
		args[2] = arg2;
		args[3] = arg3;
		args[4] = arg4;
	    */
		
		// Retrieve the message string we are looking for
		String message = RequestUtils.message(
		        pageContext, this.bundle, this.localeKey, key, args);
		
		if (message == null) {
		    JspException e = new JspException
			(messages.getMessage("message.message", "\"" + key + "\""));
	            RequestUtils.saveException(pageContext, e);
	            throw e;
        } else if (id != null) {
            // assign a message to var
            pageContext.getRequest().setAttribute(id,message) ;    
        }

		// Print the retrieved message to our output writer
	    ResponseUtils.write(pageContext, message);
	
		// Continue processing this page
		return (SKIP_BODY);

    }


    /**
     * Release any acquired resources.
     */
    public void release() {

		super.release();
		
		this.id = null ;

    }
    
    
    // -- setter getter--
    
    /**
     * @return 返回 id。
     */
    public String getId() {
        return id;
    }
    /**
     * @param id 要设置的 id。
     */
    public void setId(String id) {
        this.id = id;
    }
    /**
     * @return 返回 arg0Bundle。
     */
    public String getArg0Bundle() {
        return arg0Bundle;
    }
    /**
     * @param arg0Bundle 要设置的 arg0Bundle。
     */
    public void setArg0Bundle(String arg0Bundle) {
        this.arg0Bundle = arg0Bundle;
    }
    /**
     * @return 返回 arg0Key。
     */
    public String getArg0Key() {
        return arg0Key;
    }
    /**
     * @param arg0Key 要设置的 arg0Key。
     */
    public void setArg0Key(String arg0Key) {
        this.arg0Key = arg0Key;
    }
    /**
     * @return 返回 arg1Bundle。
     */
    public String getArg1Bundle() {
        return arg1Bundle;
    }
    /**
     * @param arg1Bundle 要设置的 arg1Bundle。
     */
    public void setArg1Bundle(String arg1Bundle) {
        this.arg1Bundle = arg1Bundle;
    }
    /**
     * @return 返回 arg1Key。
     */
    public String getArg1Key() {
        return arg1Key;
    }
    /**
     * @param arg1Key 要设置的 arg1Key。
     */
    public void setArg1Key(String arg1Key) {
        this.arg1Key = arg1Key;
    }
    /**
     * @return 返回 arg2Bundle。
     */
    public String getArg2Bundle() {
        return arg2Bundle;
    }
    /**
     * @param arg2Bundle 要设置的 arg2Bundle。
     */
    public void setArg2Bundle(String arg2Bundle) {
        this.arg2Bundle = arg2Bundle;
    }
    /**
     * @return 返回 arg2Key。
     */
    public String getArg2Key() {
        return arg2Key;
    }
    /**
     * @param arg2Key 要设置的 arg2Key。
     */
    public void setArg2Key(String arg2Key) {
        this.arg2Key = arg2Key;
    }
    /**
     * @return 返回 arg3Bundle。
     */
    public String getArg3Bundle() {
        return arg3Bundle;
    }
    /**
     * @param arg3Bundle 要设置的 arg3Bundle。
     */
    public void setArg3Bundle(String arg3Bundle) {
        this.arg3Bundle = arg3Bundle;
    }
    /**
     * @return 返回 arg3Key。
     */
    public String getArg3Key() {
        return arg3Key;
    }
    /**
     * @param arg3Key 要设置的 arg3Key。
     */
    public void setArg3Key(String arg3Key) {
        this.arg3Key = arg3Key;
    }
    /**
     * @return 返回 arg4Bundle。
     */
    public String getArg4Bundle() {
        return arg4Bundle;
    }
    /**
     * @param arg4Bundle 要设置的 arg4Bundle。
     */
    public void setArg4Bundle(String arg4Bundle) {
        this.arg4Bundle = arg4Bundle;
    }
    /**
     * @return 返回 arg4Key。
     */
    public String getArg4Key() {
        return arg4Key;
    }
    /**
     * @param arg4Key 要设置的 arg4Key。
     */
    public void setArg4Key(String arg4Key) {
        this.arg4Key = arg4Key;
    }
}
